#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
添加一个图标
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon


class Example(QWidget):

    def __init__(self):
        super().__init__()# 父类的初始化
        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)# 坐标，大小
        self.setWindowTitle('测试图标')
        self.setWindowIcon(QIcon('icon.png'))
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)#所有的PyQt5应用必须创建一个应用（Application）对象。
                                # sys.argv参数是一个来自命令行的参数列表。
    w = Example()               #Qwidget组件是PyQt5中所有用户界面类的基础类。
                                # 我们给QWidget提供了默认的构造方法。默认构造方法没有父类。
                                #没有父类的widget组件将被作为窗口使用。


    # 如果没有 app.exec_() 函数，窗口会一闪而过，所以这个函数实际上是ui的主线程应该，正常退出会返回0
    #print(app.exec_())          #这里会打印0，正常退出

    #sys.exit()                 #这个是系统函数，确保一个不留垃圾的退出。
                                # 系统环境将会被通知应用是怎样被结束的。

    sys.exit(app.exec_())       #应用进入主循环，事件处理开始执行。
                                # 主循环用于接收来自窗口触发的事件，并且转发他们到widget应用上处理。